﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыОпределенияАналитики
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"db66e3f4-3a16-49a3-902e-edc9b18719af\", \"Представление\":\"ИзБазы\"}")]
		ИзБазы = 0,//Из базы
		[EnumMember(Value = "{\"Ссылка\":\"5b34239e-0268-43f2-b2e3-937c618b8d97\", \"Представление\":\"ИзИсточника\"}")]
		ИзИсточника = 1,//Из источника
		[EnumMember(Value = "{\"Ссылка\":\"b7d4752c-c4d7-45ab-a971-06c2ccb73395\", \"Представление\":\"НеИспользуется\"}")]
		НеИспользуется = 3,//Не используется
	}
	public static partial class СпособыОпределенияАналитики_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ИзБазы = new Guid("c9ed2e90-87b1-af19-49a3-3a16db66e3f4");//Из базы
		public static readonly Guid ИзИсточника = new Guid("7c93e3b2-8b61-978d-43f2-02685b34239e");//Из источника
		public static readonly Guid НеИспользуется = new Guid("c20671a9-b7cc-9533-45ab-c4d7b7d4752c");//Не используется
		public static СпособыОпределенияАналитики Получить(this СпособыОпределенияАналитики Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыОпределенияАналитики Получить(this СпособыОпределенияАналитики Значение, Guid Ссылка)
		{
			if(Ссылка == ИзБазы)
			{
				return СпособыОпределенияАналитики.ИзБазы;
			}
			else if(Ссылка == ИзИсточника)
			{
				return СпособыОпределенияАналитики.ИзИсточника;
			}
			else if(Ссылка == НеИспользуется)
			{
				return СпособыОпределенияАналитики.НеИспользуется;
			}
			return СпособыОпределенияАналитики.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыОпределенияАналитики Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыОпределенияАналитики Значение)
		{
			switch (Значение)
			{
				case СпособыОпределенияАналитики.ИзБазы: return ИзБазы;
				case СпособыОпределенияАналитики.ИзИсточника: return ИзИсточника;
				case СпособыОпределенияАналитики.НеИспользуется: return НеИспользуется;
			}
			return Guid.Empty;
		}
	}
}